home *** CD-ROM | disk | FTP | other *** search
/ PC-Blue - MS DOS Public Domain Library / PC-Blue MS-DOS Public Domain Library - NYACC.iso / vol153 / aardvark.bas (.txt) next >
Encoding:
GW-BASIC  |  1986-12-16  |  4.3 KB  |  127 lines

  1. 1  ' "AARDVARK.BAS",A
  2. 2  'from COMPUTE!'s PC & PCjr June 1984
  3. 3  'Original program by Todd Heimark
  4. 4  'IBM translation by Tim Victor
  5. 5  '
  6. 6  '
  7. 10  CB=7:CI=12:CP=11:CS=2:CL=15
  8. 20  WIDTH 40:COLOR 7,0,0:CLS:LOCATE 1,2,0:KEY OFF:DEF SEG=0:POKE 1047,96
  9. 30  DIM P$(1):P$(0)=CHR$(15):P$(1)="o":SC=0:HI=0:D=1:DIM D$(6):
  10. 40  COLOR CS:LOCATE 3,12:PRINT "AARDVARK ATTACK"
  11. 50  NL=41:NS=32767:SOUND NL,10:SOUND NS,1:SOUND NL,4:SOUND NL*1.19,10:SOUND NL,10
  12. 60  LOCATE 22,6:PRINT "Do you want instructions? (Y/N)"
  13. 61  A$=INKEY$: IF A$="" OR (A$<>"Y" AND A$<>"N") THEN 61
  14. 62  IF A$="N" THEN 85 :IF A$="Y" THEN 63
  15. 63  '  Instructions
  16. 64  CLS:LOCATE 1,1:
  17. 65  PRINT"Earth is being attacked again! Mutant   aardvarks from Andromeda are dropping   alphanumeric bombs.":LOCATE 6,1:
  18. 66  PRINT"There are 26 types of bombs each needinga different type of defense.For example,typing the letter Q will set up the Q   defense against Q-bombs.":
  19. 67  LOCATE 11,1:PRINT"Also, to save your city from attack you must type its number."
  20. 68  LOCATE 14,1:PRINT"  -The game can be paused by typing the":PRINT"   ] key. To continue, press ENTER."
  21. 69  LOCATE 17,1:PRINT"  -To change levels, type the ] key":LOCATE 18,1:
  22. 70  PRINT"   followed by the new level desired."
  23. 72  LOCATE 20,1:PRINT"  -To END, type the ] key followed by      the E key.
  24. 73  LOCATE 22,10:PRINT"To begin the game, press the SPACE bar."
  25. 80  A$=INKEY$: IF A$="" OR (A$<>" ") THEN 80:IF A$=" " THEN 85
  26. 85  'DRAW SCREEN
  27. 90  CLS:S$="WHILEWHILEWHILEWHILEWHILEOPEN            OPENWHILEWHILEWHILEWHILEWHILEWHILELINELINELINELINELINELINELINELINELINELINELINELINELINE"
  28. 100  COLOR CB
  29. 110  FOR I=1 TO 24:LOCATE I,1:PRINT S$;:NEXT
  30. 120  COLOR CP
  31. 130  LOCATE 20,8:PRINT "1234567890";:FOR I=21 TO 24:LOCATE I,8:PRINT "LINELINELINELINELINELINELINELINELINELINE";:NEXT
  32. 140  COLOR CS
  33. 150  LOCATE 19,27:PRINT "Level      ";
  34. 160  LOCATE 20,27:PRINT "           ";
  35. 170  LOCATE 21,27:PRINT "Score      ";
  36. 180  LOCATE 22,27:PRINT "           ";
  37. 190  LOCATE 23,27:PRINT "High       ";
  38. 200  GOSUB 560
  39. 210  FOR I=3 TO 11:LOCATE I,28:PRINT "         ";:NEXT
  40. 220  COLOR CS
  41. 230  GOSUB 730
  42. 240  LOCATE 1,1:PRINT "Enter difficulty level (0=Easy/9=Hard)"
  43. 250  GOSUB 660
  44. 260  '      CHOOSE BOMB AND CITY
  45. 270  COLOR CB
  46. 280  LOCATE 1,1:PRINT S$;
  47. 290  Z=(RND*26000):Z=INT(Z-INT(Z/26)*26):RESTORE:FOR J=1 TO Z:READ A1,A2,A3,A4,A5,A6,A7:NEXT
  48. 300  FOR I=0 TO 6:D$(I)="       ":READ A%:FOR J=1 TO 7:B%=(A%>63):MID$(D$(I),J)=CHR$(32-B%*187):A%=(A%+B%*64)*2:NEXT:NEXT
  49. 305  COLOR C1
  50. 310  FOR I=1 TO 40:N=INT(RND*10):IF N THEN LOCATE 1,N+7 ELSE LOCATE 1,17
  51. 330  PRINT CHR$(178);:SOUND 261.6*2^(N/12),1:NEXT
  52. 340  LY=0
  53. 350  COLOR CL
  54. 360  FOR I=4 TO 10: LOCATE I,29:PRINT D$(I-4);:NEXT
  55. 370  COLOR CI
  56. 380  '     THE AARDVARKS ATTACK
  57. 390  IF N THEN C=N+7 ELSE C=17
  58. 400  R=2:WHILE SCREEN(R,C)=32 :LOCATE R,C:PRINT P$(LY);:SOUND 50*(24-R),1:FOR K=1 TO HF:A$=INKEY$        
  59. 410  IF A$="" THEN 450
  60. 420  IF A$="]" THEN COLOR CS:GOSUB 660:COLOR CI:GOTO 450
  61. 430  IF LY=1 THEN IF ASC(A$)-48=N THEN COLOR CS:GOSUB 530:COLOR CI:GOTO 490
  62. 440  IF LY=0 THEN IF ASC(A$)-65=Z THEN LY=1
  63. 450  NEXT:R=R+1:WEND
  64. 460  '     ATTACK SUCCESSFUL
  65. 470  LOCATE R,C:PRINT P$(LY);:IF R=24 THEN 630
  66. 480  IF LY=0 THEN R=R+1:LOCATE R,C:PRINT P$(LY);:IF R=24 THEN 630
  67. 485  FOR I=1 TO 2:SOUND 50*(24-R),2:SOUND NS,2:NEXT:SOUND 50*(24-R),5
  68. 490  FOR I=2 TO R:LOCATE I,C:PRINT " ";:NEXT
  69. 500  FOR I=3 TO 11:LOCATE I,28:PRINT "         ";:NEXT
  70. 510  GOTO 260
  71. 520  ,   ATTACK THWARTED
  72. 530  SC=SC+2^(D-1)
  73. 535  SOUND 164.8,4:SOUND NS,1:SOUND 164.8,2:SOUND 220,10
  74. 540  IF R<6 THEN SC=SC+2^(D-1)
  75. 550  IF R<12 THEN SC=SC+2^(D-1)
  76. 560  B$=STR$(SC):B$=LEFT$("00000",6-LEN(B$))+MID$(B$,2,LEN(B$)-1)
  77. 570  LOCATE 21,33:PRINT B$;
  78. 580  IF SC>HI THEN HI=SC
  79. 590  B$=STR$(HI):B$=LEFT$("00000",6-LEN(B$))+MID$(B$,2,LEN(B$)-1)
  80. 600  LOCATE 23,33:PRINT B$
  81. 610  RETURN
  82. 620  '    GAME OVER
  83. 630  SC=0
  84. 635  FOR J=1 TO 12:FOR I=400 TO 240 STEP -80:SOUND I,1:NEXT:LOCATE J*2,1:PRINT "                                       ";:NEXT
  85. 637  LOCATE 1,1:PRINT"           Play again? (Y OR N)        "
  86. 638  A$=INKEY$:IF A$="" THEN 638
  87. 639  IF A$="N" THEN A$="E":GOTO 680
  88. 640  GOTO 100
  89. 650  '   SET DIFFICULTY
  90. 660  A$=INKEY$:IF A$<>"" THEN 660
  91. 670  A$=INKEY$:IF A$="" THEN 670
  92. 680  IF A$="E" THEN POKE 1047,64:CLS:COLOR 7:SYSTEM
  93. 690  IF ASC(A$)=13 THEN 750
  94. 700  IF ASC(A$)<48 THEN 670
  95. 710  IF ASC(A$)>57 THEN 670
  96. 720  D=ASC(A$)-47
  97. 730  HF=INT(100/(D*D))-4*D+40
  98. 740  LOCATE 19,35:PRINT MID$(STR$(D-1),2,1);
  99. 750  A$=INKEY$:IF A$<>"" THEN 750
  100. 760  RETURN
  101. 1001  DATA 24,60,102,102,126,102,102
  102. 1002  DATA 126,51,51,63,51,51,126
  103. 1003  DATA 30,51,96,96,96,51,30
  104. 1004  DATA 124,54,51,51,51,54,124
  105. 1005  DATA 127,49,52,60,52,49,127
  106. 1006  DATA 127,49,52,60,52,48,120
  107. 1007  DATA 30,51,96,96,103,51,15
  108. 1008  DATA 102,102,102,126,102,102,102
  109. 1009  DATA 60,24,24,24,24,24,60
  110. 1010  DATA 15,6,6,6,102,102,60
  111. 1011  DATA 115,51,54,60,54,51,115
  112. 1012  DATA 120,48,48,48,49,51,127
  113. 1013  DATA 99,119,127,127,107,99,99
  114. 1014  DATA 99,115,123,111,103,99,99
  115. 1015  DATA 28,54,99,99,99,54,28
  116. 1016  DATA 126,51,51,62,48,48,120
  117. 1017  DATA 60,102,102,102,110,60,14
  118. 1018  DATA 126,51,51,62,54,51,115
  119. 1019  DATA 60,102,48,24,12,102,60
  120. 1020  DATA 126,90,24,24,24,24,60
  121. 1021  DATA 102,102,102,102,102,102,126
  122. 1022  DATA 102,102,102,102,102,60,24
  123. 1023  DATA 99,99,99,107,127,119,99
  124. 1024  DATA 99,99,54,28,28,54,99
  125. 1025  DATA 102,102,102,60,24,24,60
  126. 1026  DATA 127,99,70,12,25,51,127
  127.